package org.oims.simpleserver.mapper;

import org.oims.simpleserver.entities.FriendChatDetailItem;
import org.oims.simpleserver.entities.db.FriendChatListItem;
import org.oims.simpleserver.entities.db.FriendMsgItem;
import org.oims.simpleserver.entities.db.User;
import org.springframework.stereotype.Repository;

import java.util.Calendar;
import java.util.List;

@Repository
public interface UserMapper {
    /**
     * 获取用户已经加密过的密钥
     * @param MpNo 用户手机号码
     * @return 加密密钥
     */
    String getUserEncryptedPwd(String MpNo);

    /**
     * 获取用户聊天列表
     * @param MpNo 用户手机号
     * @return 聊天列表
     */
    List<FriendChatDetailItem> getFriendChatDetails(String MpNo);

    /**
     *
     * @param MpNo
     * @param pwd
     * @return
     */
    User getUser(String MpNo, String pwd);

    /**
     * 最新的好友消息列表
     * @param userMpNo
     * @param friendMpNo
     * @param msgNum
     * @return
     */
    List<FriendMsgItem> getLatestFriendMsgs(String userMpNo, String friendMpNo, int msgNum);

    /**
     *
     * @param msgId
     * @param status
     */
    void updateFriendMsgStatus(long msgId, int status);

    /**
     *
     * @param MpNo
     * @param now
     */
    void updateLastLoginTime(String MpNo, Calendar now);

    /**
     *
     * @param item
     */
    void insertFriendChatList(FriendChatListItem item);

    void updateFriendChatListCTime(String ownMpNo, String toMpNo, Calendar now);

    /**
     * 更新创建时间和未接收数目
     * @param ownMpNo
     * @param toMpNo
     * @param now
     */
    int updateFCLtCTimeAndUnRum(String ownMpNo, String toMpNo, Calendar now);

    /**
     * 为friend chat list的unreceived_num字段设置‘0’值
     */
    void setZeroNumForFriChatList(String ownMpNo, String toMpNo);
}
